package com.witmore.skyline.db.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Builder;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * TP-Link摄像头任务表
 * </p>
 *
 * @author 豆子高
 * @since 2025-03-15
 */
@Builder
@Data
@TableName("skyline_camera_task")
public class CameraTaskDO implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField("org_id")
    private Integer orgId;

    /**
     * 摄像头sn号
     */
    @TableField("camera_sn")
    private String cameraSn;

    /**
     * 抓拍类型 1实时抓图 2实时抓视频
     */
    @TableField("type")
    private Integer type;

    /**
     * 厂商来源 1萤石 2TP-Link
     */
    @TableField("manu_source")
    private Integer manuSource;

    /**
     * 任务状态 0待执行 1执行中 10成功结束 11异常结束
     */
    @TableField("state")
    private Integer state;

    /**
     * 图片地址
     */
    @TableField("url")
    private String url;

    /**
     * 操作者用户id
     */
    @TableField("account_id")
    private Integer accountId;

    /**
     * 错误码，任务结束后返回 0：成功 -88303：套餐用量超限 -82414：系统异常 -80327：设备离线 -80301：设备不存在 -87035：获取设备端数据超时 -87036：录像数据不存在 -87037：超过设备并发上限 -87038：设备推流异常
     */
    @TableField("error_code")
    private Integer errorCode;

    /**
     * 错误信息
     */
    @TableField("error_msg")
    private String errorMsg;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 任务id
     */
    @TableField("task_id")
    private String taskId;
}
